برنامه: مرتب سازی حبابی یک آرایه از اعداد.
تعریف مرتب سازی حبابی:
این الگوریتم ساده ترین و معروف ترین الگوریتم برای مرتب سازی داده است.
فرض کنید میخواهیم n داده به صورت صعودی مرتب شوند. عنصر اول را با با عنصر دوم مقایسه کرده، و در صورتی که عنصر اول بزرگتر باشد باشد جای عنصر اول و دوم را عوض میکنیم. همین کار را با عناصر دوم و سوم انجام میدهیم و همینطور عناصر سوم و چهارم ، الی آخر. وقتی این کار تمام شد بزرگترین عنصر بین دادهها به آخر لیست میرسد . حالا یک بار دیگر از اول این کار را انجام میدهیم اما این بار تا عنصر (n -۱)ام ادامه میدهیم (عنصر nام در مرحله اول در جای خودش قرار گرفته). باز هم این کار را تا عنصر (n - ۲)ام تکرار میکنیم ، و بازهم .... تا اینکه بالاخره دادهها مرتب میشوند.
ادامه ی تعریف درسایت منبع
الگوریتم:
پس از خواندن اداد از ورودی که
در سی++
توسط آرایه و دستورات cin و ...
for(int i =0;i < arraySize;i++)
{
cin>>array[ i];
}
که یک آرایه با نام array و اندازه ی arraySize را از ورودی می خواند که بین هر عد یک فضای خالی باید باشد یا بعد هر عدد یک enter زده شود
و در سی شارپ و جاوااسکریپت
از طریق تکست باکس ها که طبق قرارداد ما ن بعد هر عدد یک کاما باید وارد شود
مثال:
برای ورود اعداد 5و3و0و1و4و2 داریم:
5,3,0,1,4,2,
که پس از ارسال تکست باکس به تابع مقدار زیر قابل مشاهده هست
0,1,2,3,4,5
مرتب سازی حبابی ++C |
#include #include void bubleSort(int num[],int numSize) { int temp=0; for(int i=numSize;i>0;i--) { for(int j=0;j<i;j++) if(num[j] > num[j+1]) { temp = num[j]; num[j] = num[j+1]; num[j+1] = temp; } }
} main() { int test[10]={5,9,0,8,1,7,2,6,3,4}; int size=10;
bubleSort(test,size-1);
for(int i=0;i<size;i++) cout<<"\ntest["<<i<<"] = "<<test[i];
getch(); return 0;
}
|
مرتب سازی حبابی #C |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //................................................................................... int[] bubleSort(string test) { int i = 0;
int test2size = 0;
//count number's that entered in textbox by counting ',' for (i = 0; i < txt1.TextLength; i++) if (test[i] == ',') test2size++;
int[] test2 = new int[test2size]; test2size = 0;
for (i = 0; i < txt1.TextLength; i++) {
if (test[i] != ',') test2[test2size] = test2[test2size] * 10 + Int32.Parse(test[i].ToString()); else test2size++;
}
int temp = 0; for (i = test2size - 1; i > 0; i--) { for (int j = 0; j < i; j++) if (test2[j] > test2[j + 1]) { temp = test2[j]; test2[j] = test2[j + 1]; test2[j + 1] = temp; } }
return test2; } //.............................................................. public void button1_Click(object sender, EventArgs e) {
lstb1.Items.Clear();
int[] test=bubleSort(txt1.Text);
for (int i = 0; i < test.Length; i++) { lstb1.Items.Add(test[i]); }
} } } |
:: موضوعات مرتبط:
پروژه #c ,
پروژه طراحی الگورتم ,
,